﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VOL.Core.Utilities;
using VOL.Entity.DomainModels;

namespace VoL.Domain.IServices.DoctorManage
{
    public interface IDoctorManageServices
    {
       /// <summary>
       /// 查询出量
       /// </summary>
       /// <param name="patientCode">患者编号</param>
       /// <param name="firstTime">开始时间</param>
       /// <param name="endTime">结束时间</param>
       /// <returns>返回</returns>
        Task<WebResponseContent> GetOutRecords(string patientCode, DateTime? firstTime, DateTime? endTime);

        /// <summary>
        /// 查询入量
        /// </summary>
        /// <param name="patientCode">患者编号</param>
        /// <param name="firstTime">开始时间</param>
        /// <param name="endTime">结束时间</param>
        /// <returns>返回</returns>
        Task<WebResponseContent> GetInRecords(string patientCode, DateTime? firstTime, DateTime? endTime);

        /// <summary>
        /// 获取患者列表
        /// </summary>
        /// <returns>返回</returns>
        Task<WebResponseContent> GetPatients();

        /// <summary>
        /// 查询日常护理
        /// </summary>
        /// <param name="patientCode">患者编号</param>
        /// <returns>返回</returns>
        Task<WebResponseContent> GetPatientReCords(string patientCode);

        /// <summary>
        /// 根据患者编号查询患者信息成功
        /// </summary>
        /// <param name="patientCode">患者编号</param>
        /// <returns>返回</returns>
        Task<WebResponseContent> GetPatientsByPatientCode(string patientCode);

        /// <summary>
        /// 添加医嘱
        /// </summary>
        /// <param name="tell">实例类</param>
        /// <returns>返回</returns>
        Task<WebResponseContent> CreateTell(Tell tell);
        /// <summary>
        /// 删除医嘱
        /// </summary>
        /// <param name="id">id</param>
        /// <returns>返回</returns>
        Task<WebResponseContent> DeleteTell(int id);
        /// <summary>
        /// 更新医嘱
        /// </summary>
        /// <param name="tell">医嘱信息</param>
        /// <returns>返回更新结果</returns>
        Task<WebResponseContent> UpdateTell(Tell tell);
        /// <summary>
        /// 获取医嘱列表（支持模糊查询）
        /// </summary>
        /// <param name="patientCode">患者编号（支持模糊查询）</param>
        /// <returns>返回医嘱列表</returns>
        Task<WebResponseContent> GetTells(string? patientCode);
        /// <summary>
        /// 修改发布状态
        /// </summary>
        /// <param name="id">主键Id</param>
        /// <returns>返回医嘱列表</returns>
        Task<WebResponseContent> Updatesatus(int id);
        /// <summary>
        /// 获取发布成功后的信息
        /// </summary> 
        /// <returns>返回医嘱列表</returns>
        Task<WebResponseContent> GetTellsPublisher(string? patientCode);

        /// <summary>
        /// 查询全部床位
        /// </summary>
        /// <returns>返回</returns>
        Task<WebResponseContent> GetBed();
    }
}
